var util = require('../../utils/util.js')

const db = wx.cloud.database()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    inputId: '',//待查找的id
    showBottom: false, // 显示底部状态栏
    total: '', // 总用户数
    pageIndex: 1, // 当前页面数
    orders: [], //用户数据汇总
    perPage: 10 //每页显示用户数
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //获取用户总数
    this.getBlockingOrdersCount()
    //获取用户信息
    this.getBlockingOrderInfoByIndex(this.data.pageIndex)
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    this.toggleBottomStatus(true)
    let orders = this.data.orders
    let total = this.data.total
    let index = this.data.pageIndex

    //如果不是尾页，则需要加载数据
    if (orders.length < total) {
      this.getBlockingOrderInfoByIndex(index + 1)
    }

  },
  toggleBottomStatus: function (bool) {
    this.setData({
      showBottom: bool
    })
  },
  //------------------------------------------获取 停滞订单 总数
  getBlockingOrdersCount: function () {
    let that = this
    db.collection('temp_orders').count().then(res => {
      that.setData({ total: res.total })
    })
  }, 
  //------------------------------------------根据页码获取 停滞订单信息
  getBlockingOrderInfoByIndex: function (index) {
    let that = this
    let limit = this.data.perPage
    let skip = limit * (index - 1)
    let orders = this.data.orders
    console.log('skip:', skip, 'limit:', limit, 'orders:', orders)
    db.collection('temp_orders')
      .skip(skip) // 跳过结果集中的xx条
      .limit(limit) // 限制返回数量为xx条
      .get()
      .then(res => {
        console.log(res)
        for (let i = 0; i < res.data.length; i++) {
          orders.push(res.data[i])
        }

        that.setData({
          orders: orders,
          pageIndex: index
        })
        that.toggleBottomStatus(false)
      })
  },
  //------------------------------------------根据页码获取用户信息
  syncInputValue: function (e) {
    this.setData({
      inputId: e.detail.value
    })
  },
  //------------------------------------------按输入id搜索用户
  searchByIdClick: function () {
    let that = this
    //判断搜索条件不为空
    let inputId = this.data.inputId
    if (inputId == '') {
      wx.showToast({
        title: '请先输入订单号',
        icon: 'none'
      })
      return
    }
    console.log(inputId)
    //在数据库中根据id筛选
    let reg = '/' + inputId + '*/';
    const _ = db.command
    db.collection('temp_orders').where(_.or([
      {
        userid: inputId
      },
      {
        cardid: inputId
      }
    ])).get().then(res => {
      console.log(res.data)
      let searchResult = []
      for (let i = 0; i < res.data.length; i++) {
        searchResult.push(res.data[i])
      }
      that.setData({
        orders: searchResult
      })
    })
  },
  //------------------------------------------重置页面
  resetClick: function () {
    this.setData({
      inputId: '',//待查找的id
      showBottom: false, // 显示底部状态栏
      pageIndex: 1, // 当前页面数
      orders: [], //用户数据汇总
    })
    //获取订单总数
    this.getBlockingOrdersCount()
    //获取订单信息
    this.getBlockingOrderInfoByIndex(this.data.pageIndex)
  },
  //------------------------------------------判断此订单的支付状态：并进行一系列的判断
  checkWeixinPayState:function(e){
    let that=this
    wx.showLoading({
      title: '努力核实中...',
    })
    let orderId = e.currentTarget.dataset.id
    console.log(orderId)
    wx.cloud.callFunction({
      name:'weixinPayOrderQuery',
      data:{
        orderId:orderId
      }
    }).then(res=>{
      console.log('是否支付：',res.result)
      console.log(orderId)
      if(res.result =='SUCCESS'){
        // a.查询到用户已支付成功
        util.releaseOrderByOrderId(orderId)
          .then(res => {
            wx.hideLoading()
            if (res.result.result == 'success') {
              // a.订单指令下达成功
              wx.showModal({
                title: '核实通过',
                content: '已为你重新记录订单信息并打印小票',
                showCancel:false,
                confirmText:'我知道了'
              })
              //重置页面
              that.resetClick()
            } else {
              // b.订单指令下达失败
              console.log(res)
              wx.showModal({
                title: '警告',
                content: '该用户支付成功，在下达订单指令时出错。请联系管理员处理！',
                showCancel: false,
                confirmText: '好的'
              })
            }
          })
      }else{
        // a.查询到用户未支付  ---> 删除临时订单
        util.deleteTempOrderByOrderId(orderId)
          .then(res => {
            wx.hideLoading()
            wx.showModal({
              title: '订单未支付',
              content: '该用户并未进行支付动作，已为您删除该滞留订单',
              showCancel: false,
              confirmText: '我知道了'
            })
            //重置页面
            that.resetClick()
          }) 
      }
    }).catch(err=>{
      console.log(err)
      wx.showModal({
        title: '警告',
        content: '云函数[weixinPayOrderQuery]执行出错，请联系管理员',
        showCancel:false
      })
    })

  },
})